package org.example.ba06;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

/*@Aspect :  该注解是aspect中的注解，表示该类是切面类
*           切面类：用来给目标方法增加功能的类，在该类中有切面代码*/
@Aspect
public class MyAspect {

    /*
    * @Pointcut  :定义和管理切入点，如果你的项目中有多个切入点表达式是重复的，可以使用@pointcut
    * 属性：value
    *
    * 当@pointcut用在一个方法的上面，此时这个方法的名称就是切入点表达式的别名，
    * 其他通知中，value属性可以使用这个方法名称，代替切入点表达式*/
    @Pointcut(value = "execution(* *..*.doThird(..))")
    private void mypt(){
        //不需要被外界调用，一般是私有的
    }

    @After(value = "mypt()")
    public void myAfter(){
        System.out.println("异常通知：总是会被执行的代码");

    }
}
